package pers.xiaojun.boot.module.system.controller.oauth2.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;

/**
 * OAuth 2.0 用户基础信息类
 *
 * @author xiaojun
 * @since 2025-10-21
 */
@Tag(name = "OAuth 2.0 用户信息响应实体-VO")
@Data
public class OAuth2UserRespVO {

    @Schema(
            description = "用户唯一ID",
            requiredMode = Schema.RequiredMode.REQUIRED,
            example = "123456789"
    )
    private Long id;

    @Schema(
            description = "用户名（登录账号）",
            requiredMode = Schema.RequiredMode.REQUIRED,
            example = "xiaojun"
    )
    private String username;

    @Schema(
            description = "用户昵称（显示名称）",
            example = "XIAO鈞i"
    )
    private String nickname;

    @Schema(
            description = "性别（0未知 1男 2女）",
            allowableValues = {"0", "1", "2"},
            example = "1"
    )
    private Integer sex;

    @Schema(
            description = "邮箱地址",
            example = "junlanok@163.com",
            format = "email"
    )
    private String email;

    @Schema(
            description = "手机号",
            example = "13800138000",
            pattern = "^1[3-9]\\d{9}$"
    )
    private String mobile;

    @Schema(
            description = "头像URL地址",
            example = "https://127.0.0.1:5000/avatar.jpg",
            format = "uri"
    )
    private String avatar;


}
